export const maskPhoneNumber = (phoneNumber) => {
    if (!phoneNumber || phoneNumber.length < 5) return phoneNumber || '';
    console.log(phoneNumber.length)
    return phoneNumber.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');

}

export const numToString = (num) => {
    let factor = Math.pow(10, 2); // 最多保留 2 位小数
    let roundedNum = Math.round(num * factor) / factor;
    return roundedNum.toString();
}

export const timeFormat = (dateTime = null, formatStr = 'yyyy-mm-dd') => {
    let date
    // 若传入时间为假值，则取当前时间
    if (!dateTime) {
      date = new Date()
    }
    else if (/^\d{10}$/.test(dateTime?.toString().trim())) {
      date = new Date(dateTime * 1000)
    }
    // 若用户传入字符串格式时间戳，new Date无法解析，需做兼容
    else if (typeof dateTime === 'string' && /^\d+$/.test(dateTime.trim())) {
      date = new Date(Number(dateTime))
    }

    else if (typeof dateTime === 'string' && dateTime.includes('-') && !dateTime.includes('T')) {
      date = new Date(dateTime.replace(/-/g, '/'))
    }
    // 其他都认为符合 RFC 2822 规范
    else {
      date = new Date(dateTime)
    }
  
    const timeSource = {
      'y': date.getFullYear().toString(), // 年
      'm': (date.getMonth() + 1).toString().padStart(2, '0'), // 月
      'd': date.getDate().toString().padStart(2, '0'), // 日
      'h': date.getHours().toString().padStart(2, '0'), // 时
      'M': date.getMinutes().toString().padStart(2, '0'), // 分
      's': date.getSeconds().toString().padStart(2, '0') // 秒
      // 有其他格式化字符需求可以继续添加，必须转化成字符串
    }
  
    for (const key in timeSource) {
      const [ret] = new RegExp(`${key}+`).exec(formatStr) || []
      if (ret) {
        // 年可能只需展示两位
        const beginIndex = key === 'y' && ret.length === 2 ? 2 : 0
        formatStr = formatStr.replace(ret, timeSource[key].slice(beginIndex))
      }
    }
  
    return formatStr
  }